// RAP [rh] quick access disabled
///*******************************************************************************
// * Copyright (c) 2006, 2007 IBM Corporation and others.
// * All rights reserved. This program and the accompanying materials
// * are made available under the terms of the Eclipse Public License v1.0
// * which accompanies this distribution, and is available at
// * http://www.eclipse.org/legal/epl-v10.html
// *
// * Contributors:
// *     IBM Corporation - initial API and implementation
// *******************************************************************************/
//
//package org.eclipse.ui.internal.quickaccess;
//
//import java.util.Arrays;
//import java.util.Comparator;
//
//import org.eclipse.jface.resource.ImageDescriptor;
//
///**
// * @since 3.3
// * 
// */
//public abstract class QuickAccessProvider {
//
//	private QuickAccessElement[] sortedElements;
//
//	/**
//	 * Returns the unique ID of this provider.
//	 * 
//	 * @return the unique ID
//	 */
//	public abstract String getId();
//
//	/**
//	 * Returns the name of this provider to be displayed to the user.
//	 * 
//	 * @return the name
//	 */
//	public abstract String getName();
//
//	/**
//	 * Returns the image descriptor for this provider.
//	 * 
//	 * @return the image descriptor, or null if not defined
//	 */
//	public abstract ImageDescriptor getImageDescriptor();
//
//	/**
//	 * Returns the elements provided by this provider.
//	 * 
//	 * @return this provider's elements
//	 */
//	public abstract QuickAccessElement[] getElements();
//
//	public QuickAccessElement[] getElementsSorted() {
//		if (sortedElements == null) {
//			sortedElements = getElements();
//			Arrays.sort(sortedElements, new Comparator() {
//				public int compare(Object o1, Object o2) {
//					QuickAccessElement e1 = (QuickAccessElement) o1;
//					QuickAccessElement e2 = (QuickAccessElement) o2;
//					return e1.getLabel().compareTo(e2.getLabel());
//				}
//			});
//		}
//		return sortedElements;
//	}
//	
//	/**
//	 * Returns the element for the given ID if available, or null if no matching
//	 * element is available.
//	 * 
//	 * @param id
//	 *            the ID of an element
//	 * @return the element with the given ID, or null if not found.
//	 */
//	public abstract QuickAccessElement getElementForId(String id);
//}
